約 2,805,247 件
https://w.atwiki.jp/kgh07155/pages/28.html
作り方の基本 フォーム付きDLLの作り方 実行ファイルからDLL内フォームを制御する 作り方の基本 DLLSample.dpr(DLLのソースファイル) library DLLSample; // library はDLLであることを示す。 uses SysUtils, Classes; // Unit作成時と同様に、必要ならばユニットを追加して構わない。 {$R *.res} // ここから、DLL側が行う処理をUnit作成時と同様に記述。 // 返し値を持たない処理は procedure // 返し値を持つ処理は function // 固定値は受け渡せないので、DLL側で管理する固定値は function で返す。 function Version ShortString; stdcall; // 最後に stdcall を追加すると、Delphi以外の言語でも返し値が使えるようになる。 // ただしDelphi以外の言語で返し値を使いたい場合は、返し値の型にも注意すること。 // 例えば String はDelphi独自の型なので、PChar か ShortString を使うようにする。 begin Result = DateToStr( FileDateToDateTime(FileAge( DLLSample.dll )) ); // この場合、返し値は DLLSample.dll と言うファイルのタイムスタンプ。 end; exports Version; // 外部ファイルから呼び出せる処理を記述。 // ここに記述されない処理は、DLL内部専用処理になる。 begin end. Unit_Sample.pas(DLLを呼び出す Unit のソースファイル) unit Unit_Sample; {$R *.dfm} // ここから、DLLを呼び出すための記述。 function ver ShortString; stdcall; // 処理名や引数名は異なっても構わないが、 // 引数や返し値の型と「stdcall」の有無は、DLL側と同じにすること。 external DLLsample.dll name Version ; // external で呼び出すDLLを指定する。 // name は、DLL内部での処理名が、ここに記述した処理名と異なることを示す。 // DLL内部での処理名と、ここに記述した処理名が同じなら不要。 // また、DLL内部の処理名は常に大文字と小文字が区別されるので、 // 大文字・小文字は常に正確に記述すること。 // ここまで、DLLを呼び出すための記述。 procedure TForm1.FormCreate(Sender TObject); begin self.Caption = ver; end; end. フォーム付きDLLの作り方 DLLSample.dpr(DLLのソースファイル) library DLLSample; uses Windows, // 呼び出し元の特定に使用。 Forms, // フォームの操作に使用。 Controls, // 返し値 TModalResult の操作に使用。 Unit_DLLForm in Unit_DLLForm.pas {DLLForm}; // フォームのソースファイル。 {$R *.res} function ShowDLLForm(hOwner HWND) TModalResult; stdcall; begin Application.Handle = hOwner; // 呼び出し元の情報をDLL側が受け取る。 DllForm = TDllForm.Create(Application); // DLL側でフォームを作成する。 // フォームに配置された各オブジェクトも、自動で作成される。 Result = DllForm.ShowModal; // 返し値を設定。 DllForm.Free; // DLL側で作成したフォームを破棄。 Application.Handle = 0; // 呼び出し元の情報を破棄。 end; procedure ShowDLLForm2; begin DllForm = TDllForm.Create(Application); // DLL側でフォームを作成する。 DllForm.Show; // 作成したフォームを表示。 end; exports ShowDLLForm, ShowDLLForm2; begin end. Unit_DLLForm(DLLに組み込みたいフォームのソースファイル) 通常のアプリケーションと同様に作成。 このプログラムの場合、Button1を配置し、Button1.ModalResult = mrOK に設定する。 Unit_Sample.pas(DLLを呼び出す Unit のソースファイル) フォームにButton1とButton2を配置する。 unit Unit_Sample; implementation {$R *.dfm} // ここから、DLLを呼び出すための記述。 function ShowDLLForm(hOwner HWND) TModalResult; stdcall; external DLLSample.dll ; procedure ShowDLLForm2; external DLLSample.dll ; // ここまで、DLLを呼び出すための記述。 procedure TForm1.Button1Click(Sender TObject); begin ShowDLLForm(Application.Handle); // DLL側でフォームを作成した後、 // 通常のフォームのShowModalメソッドと同じ動作をして // 作成したフォームを破棄。 end; procedure TForm1.Button2Click(Sender TObject); begin ShowDLLForm2; // DLL側でフォームを作成した後、 // 作成したフォームを表示。 end; end. 実行ファイルからDLL内フォームを制御する DLL内フォームの表示/非表示を、実行ファイルのToolButtonで制御するプログラムのソース。頑張れば他の制御にも応用できるかも。 基本的な仕組みは、 実行ファイルにToolButtonを配置。 DLLフォームのソースファイルに、ToolButtonを使ったイベント処理を記述。 DLLソースファイルに、ToolButtonのイベント設定(DLLフォームのソースにイベント処理の実行部があるので、その受け渡し)と、実行ファイル→DLL内フォームへのToolButton名を受け渡す処理を記述。 DLLSample.dpr(DLLのソースファイル) library DLLSample; uses Windows, // 呼び出し元の特定に使用。 Forms, // フォームの操作に使用。 ComCtrls, // ToolButtonの特定に使用。 Unit_DLLForm in Unit_DLLForm.pas {DLLForm}; // DLLフォームのソースファイル。 {$R *.res} procedure CreateDLLForm(hOwner HWND); stdcall; // DLLフォームを作成する。 begin Application.Handle = hOwner; // DLLフォームの親アプリケーションを特定。 DllForm = TDllForm.Create(Application); // DLLフォームを作成。 end; procedure FreeDLLForm; stdcall; // DLLフォームを破棄する。 begin DLLForm.Free; // DLLフォームを破棄。 Application.Handle = 0; // DLLフォームの親アプリケーションを解放。 end; procedure SetToolBtn1(Sender TToolButton); begin // 親アプリのToolButtonとDLLフォームを連携させる。 DLLForm.ToolBtn1 = Sender; // 親アプリのToolButton名をDLLフォーム側に保存。 with Sender do // 親アプリ側のToolButton設定を変更する。 begin Style = tbsCheck; // ToolButtonをトグルスイッチ型に設定。 // ↑動作確認用。ToolButtonのプロパティを直接設定して構わない。 OnClick = DLLForm.ToolBtn1Click; // ToolButtonをクリックしたときの処理をDLLフォームで用意したものに変更。 end; end; exports // 親アプリから呼び出せる処理を設定。 CreateDLLForm, FreeDLLForm, SetToolBtn1; begin end. Unit_DLLForm(DLLに組み込みたいフォームのソースファイル) unit Unit_DLLForm; type TDLLForm = class(TForm) public ToolBtn1 TToolButton; // 親アプリのToolButtonを保存するための変数。 procedure ToolBtn1Click(Sender TObject); // 親アプリのToolButtonをクリックしたときの処理の定義。 implementation {$R *.dfm} procedure TDLLForm.ToolBtn1Click(Sender TObject); begin // 親アプリのToolButtonがクリックされたとき、 DLLForm.Visible = TToolButton(Sender).Down; end; // DLLフォームの表示/非表示は ToolButton.Downプロパティに合わせる。 procedure TDLLForm.FormClose(Sender TObject; var Action TCloseAction); begin // DLLフォームが閉じられるとき、 ToolBtn1.Down = False; end; // 親アプリのToolButtonのトグルをオフ側にする。 Unit_Sample.pas(DLLを呼び出す Unit のソースファイル) フォームにToolBar1を配置し、ToolBar1上にToolButton1を作成する。 unit Unit_Sample; implementation {$R *.dfm} // ここから、DLLを呼び出すための記述。 procedure CreateDLLForm(hOwner HWND); stdcall; external DLLSample.dll ; // procedure FreeDLLForm; stdcall; external DLLSample.dll ; procedure SetToolBtn1(Sender TToolButton); external DLLSample.dll ; // ここまで、DLLを呼び出すための記述。 procedure TForm1.FormCreate(Sender TObject); begin CreateDLLForm(Application.Handle); // DLLフォームを初期化。 SetToolBtn1(ToolButton1); // ToolButton設定を初期化。 end; procedure TForm1.FormClose(Sender TObject; var Action TCloseAction); begin FreeDLLForm; // DLLフォームを破棄。 end;
https://w.atwiki.jp/isoroku_be/pages/184.html
ダウンロード 概要 窓ハンドル命令の優秀なライブラリがたくさんあったのでまとめてみました。これでデフォルトの約2倍の窓ハンドル系の命令が使えるようになります。 見やすいようにDLLと書式を統合しました。 ●窓ハンドル有効/無効 ●窓ハンドル最前面/最前面解除 ●窓ハンドルWH設定 ●窓ハンドルバー無効/有効 ●窓ハンドル親設定 ●窓ハンドル終了ボタン無効/有効 ●窓ハンドル最大化ボタン無効/有効 ●窓ハンドル最小化ボタン無効/有効 ●窓ハンドル最小化 ●窓ハンドル最大化 ●窓ハンドル終了 ●窓ハンドル移動禁止 ●窓ハンドルサイズ変更禁止 ●窓ハンドルスタイル削除 ●窓ハンドル最大化判定 ●窓ハンドル透明度設定 ●窓ハンドルフルスクリーン ●API窓ハンドルサイズ取得 ●API窓アクティブハンドル取得 ●API窓アクティブハンドル取得2 作者一覧 対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。 ●窓ハンドル有効/無効 対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。 ●窓ハンドル最前面固定/解除 対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。 ●窓ハンドルバー有効/無効 ●窓ハンドル親設定 対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。 ●窓ハンドル終了ボタン有効/無効 ●窓ハンドル最大化/最小化ボタン無効 ●窓ハンドル終了 ●窓ハンドル移動禁止 ●窓ハンドルサイズ変更禁止 対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。 ●窓ハンドル視覚スタイル削除 対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。 ●窓ハンドル透明化 対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。 ●窓ハンドルフルスクリーン 対応するregion、endregionプラグインが不足しています。対になるようプラグインを配置してください。 ●窓ハンドル最大化判定 参考 母艦の最大化した時~ ●API窓ハンドルサイズ取得 参考 ChocoSoft ●API窓アクティブハンドル取得 参考 ChocoSoft ●API窓アクティブハンドル取得2 参考 ChocoSoft サンプル #母艦ハンドルを窓ハンドル無効 #母艦ハンドルを窓ハンドル最前面 #母艦ハンドルを100,100へ窓ハンドルWH設定 #母艦ハンドルで窓ハンドルバー無効 #母艦ハンドルを窓ハンドル終了ボタン無効 #母艦ハンドルを窓ハンドル最大化ボタン無効 #母艦ハンドルを窓ハンドル最小化ボタン無効 #母艦ハンドルを窓ハンドル最小化 #母艦ハンドルを窓ハンドル終了 #母艦ハンドルを窓ハンドル移動禁止 #母艦ハンドルを窓ハンドルサイズ変更禁止 #母艦ハンドルの窓ハンドルスタイル削除 /*1の間 母艦=母艦ハンドルの窓ハンドル最大化判定*/ #母艦ハンドルを100で窓ハンドル透明度設定 #母艦ハンドルを窓ハンドルフルスクリーン #母艦のハンドルのAPI窓ハンドルサイズ取得を言う #API窓アクティブハンドル取得を言う #API窓アクティブハンドル取得2を言う /* 「notepad.exe」を起動 メモ帳H=「無題 - メモ帳」を窓ハンドル検索 母艦ハンドルをメモ帳Hの窓ハンドル親設定 */ なでしこデフォルトの窓ハンドル命令 比較のために #「なでしこ」を窓アクティブ #「なでしこ」を0,0へ窓位置移動 #「なでしこ」を窓ハンドル検索を言う #「なでしこ」を2まで窓ハンドル検索待機を言う #母艦ハンドルに「こんにちは」を窓ハンドルキー送信 #母艦ハンドルに「こんにちは」を窓ハンドルキー文字送信 #母艦ハンドルに0を窓ハンドル仮想キー送信 #窓アクティブハンドル取得を言う #窓アクティブタイトル取得を言う #「なでしこ」を窓最前面 #「なでしこ」を窓最前面解除 #母艦ハンドルの窓ハンドルテキスト取得を言う #母艦ハンドルに「タイトル」を窓ハンドルテキスト設定 #母艦ハンドルの窓ハンドルサイズ取得を言う #母艦ハンドルに「0,0,100,100」を窓ハンドルサイズ設定 #窓列挙を言う #母艦ハンドルの窓ハンドル親取得を言う #母艦のX,母艦のYの窓ハンドル座標検索を言う #母艦のX,母艦のYの窓ハンドル内座標検索を言う #母艦ハンドルの窓ハンドル内列挙を言う #母艦ハンドルから「子ウィンドウ」を窓ハンドル内検索を言う #母艦ハンドルを0,0へ窓ハンドル位置移動 #母艦ハンドルの窓ハンドル光 #母艦ハンドルを窓ハンドルアクティブ #母艦ハンドルを窓ハンドルクリック #母艦ハンドルを窓ハンドル右クリック #母艦ハンドルを窓ハンドル非同期クリック #母艦ハンドルの窓ハンドル内サイズ取得を言う /*CNAKO用 ・窓ハンドル値取得 ・窓ハンドル値設定 ・窓ハンドルアイテム数取得 ・窓ハンドル画面座標計算 */ 本体 ●EnableWindow(H,B)=DLL("user32.dll","BOOL EnableWindow(HWND hWnd,BOOL bEnable)") ●SetWindowPos(h,a,x,y,cx,cy,u)=DLL("user32.dll","BOOL SetWindowPos(HWND hWnd,HWND hWndInsertAfter,int X,int Y,int cx,int cy,UINT uFlags)") ●SetWindowLong(hWnd,nIndex,dwNewLong)=DLL("user32.dll","BOOL SetWindowLongA(DWORD,int,int)") ●GetWindowLong(hWnd,nIndex)=DLL("user32.dll","DWORD GetWindowLongA(DWORD,int)") ●SetParent(H1,H2)=DLL("user32.dll","DWORD SetParent(DWORD, DWORD)") ●GetSystemMenu(hWnd,bRevert)=DLL("user32.dll","DWORD GetSystemMenu(HWND,BOOL)") ●EnableMenuItem(hMenu,uItemID,uEnable)=DLL("user32.dll","BOOL EnableMenuItem(DWORD,int,int)") ●DeleteMenu(hMenu,uPosition,fuFlags)=DLL("user32.dll","BOOL DeleteMenu(DWORD,int,int)") ●SetWindowTheme(hwnd,pszSubAppName,pszSubIdList)=DLL("UxTheme.dll","HRESULT SetWindowTheme(HWND hwnd,LPCWSTR pszSubAppName,LPCWSTR pszSubIdList)") ●SetLayeredWindowAttributes(h,c,b,d)=DLL("user32.dll","BOOL SetLayeredWindowAttributes(HWND hwnd, LONG crKey, LONG bAlpha, DWORD dwFlags );") ●ShowWindow(h,n)=DLL("user32.dll","BOOL ShowWindow(HWND hWnd,int nCmdShow)") ●GetForegroundWindow =DLL("user32.dll","HWND GetForegroundWindow(VOID)") ●GetActiveWindow=DLL("user32.dll","HWND GetActiveWindow(VOID)") ●GetWindowRect(H,{参照渡し}RECT)=DLL("user32.dll","Long GetWindowRect(Long hWnd,LPRECT lpRect)") ●IsZoomed(hWnd)=DLL("user32.dll","BOOL IsZoomed(HWND hWnd)") ●窓ハンドル有効({=?}Hの|Hを) もし、H=空ならば、H=_ EnableWindow(H,1) ●窓ハンドル無効({=?}Hの|Hを) もし、H=空ならば、H=_ EnableWindow(H,0) ●窓ハンドル最前面({=?}Hの|Hを) もし、H=空ならば、H=_ SetWindowPos(H,-1,0,0,0,0,1||2) ●窓ハンドル最前面解除({=?}Hの|Hを) もし、H=空ならば、H=_ SetWindowPos(H,-2,0,0,0,0,1||2) ●窓ハンドルWH設定({=?}HANDLEをW,Hへ) もし、HANDLE=空ならば、HANDLE=_ Aとは配列=HANDLEの窓ハンドルサイズ取得 A[0,2]=A[0,0]+W;A[0,3]=A[0,1]+H HANDLEにAを窓ハンドルサイズ設定 ●窓ハンドルバー無効({=?}Hの|Hを) もし、H=空ならば、H=_ MODEとは整数=AND(GetWindowLong(H,$FFFFFFF0),$FF70FFFF) SetWindowLong(H,$FFFFFFF0,MODE) ●窓ハンドルバー有効({=?}Hの|Hを) もし、H=空ならば、H=_ MODEとは整数=GetWindowLong(H,$FFFFFFF0)+$008F0000 SetWindowLong(H,$FFFFFFF0,MODE) ●窓ハンドル親設定({=?}親Hを子Hの) もし、親H=空ならば、親H=_ SetParent(子H,親H) ●窓ハンドル終了ボタン無効({=?}Hの|Hを) もし、H=空ならば、H=_ EnableMenuItem(GetSystemMenu(H,0),$F060,1) ●窓ハンドル終了ボタン有効({=?}Hの|Hを) もし、H=空ならば、H=_ EnableMenuItem(GetSystemMenu(H,0),$F060,0) ●窓ハンドル最大化ボタン無効({=?}Hの|Hを) もし、H=空ならば、H=_ MODEとは整数=AND(GetWindowLong(H,$FFFFFFF0),$FFFEFFFF) SetWindowLong(H,$FFFFFFF0,MODE) ●窓ハンドル最大化ボタン有効({=?}Hの|Hを) もし、H=空ならば、H=_ MODEとは整数=OR(GetWindowLong(H,$FFFFFFF0),$00010000) SetWindowLong(H,$FFFFFFF0,MODE) ●窓ハンドル最小化ボタン無効({=?}Hの|Hを) もし、H=空ならば、H=_ MODEとは整数=AND(GetWindowLong(H,$FFFFFFF0),$FFFDFFFF) SetWindowLong(H,$FFFFFFF0,MODE) ●窓ハンドル最小化ボタン有効({=?}Hの|Hを) もし、H=空ならば、H=_ MODEとは整数=OR(GetWindowLong(H,$FFFFFFF0),$00020000) SetWindowLong(H,$FFFFFFF0,MODE) ●窓ハンドル最小化({=?}Hの|Hを) もし、H=空ならば、H=_ PostMessage(H,$112,$f020,0) ●窓ハンドル最大化({=?}Hの|Hを) もし、H=空ならば、H=_ PostMessage(H,$112,$f030,0) #窓ハンドルアクティブ ●窓ハンドル終了({=?}Hの|Hを) もし、H=空ならば、H=_ PostMessage(H,$10,0,0) ●窓ハンドル移動禁止({=?}Hの|Hを) もし、H=空ならば、H=_ DeleteMenu(GetSystemMenu(H,0),$F010,1) ●窓ハンドルサイズ変更禁止({=?}Hの|Hを) もし、H=空ならば、H=_ DeleteMenu(GetSystemMenu(H,0),$F000,1) ●窓ハンドルスタイル削除({=?}Hの|Hを) もし、H=空ならば、H=_ SetWindowTheme(H,"vbNullString","vbNullString") ●窓ハンドル最大化判定({=?}Hの) もし、H=空ならば、H=_ IsZoomed(H)で戻る ●窓ハンドル透明度設定({=?}HをAで) もし、H=空ならば、H=_ SetWindowLong(H,-20,GetWindowLong(A,-20)||$80000) SetLayeredWindowAttributes(H,0,A,2) ●窓ハンドルフルスクリーン({=?}Hの|Hを) もし、H=空ならば、H=_ SetWindowLong(H,-16,$80) ShowWindow(H,1) Hに「0,0,{デスクトップW},{デスクトップH}」を窓ハンドルサイズ設定 ■RECT ・Left・Top・Right・Bottom ●API窓ハンドルサイズ取得({=?}Hの) もし、H=空ならば、H=_ 返り値とは配列 Sとは変数;Sに16を確保 GetWindowRect(H,S) UNPACK(S,RECT,"Long,Long,Long,Long") 返り値[0,0]=RECT.Left;返り値[0,1]=RECT.Top 返り値[0,2]=RECT.Right;返り値[0,3]=RECT.Bottom 返り値で戻る ●API窓アクティブハンドル取得~GetForegroundWindow ●API窓アクティブハンドル取得2~GetActiveWindow 総合 - 今日 - 人 昨日 - 人 名前 コメント
https://w.atwiki.jp/dtmer/pages/53.html
「Dynamic Link Library」の略称。 複数のソフトウェア?が参照するような利用率の高いプログラムを部品化(ルーチン化)して作成されたファイルのこと。 必要に応じてメモリ?に呼び出し、使用される。 DLLとなっているプログラムは、ほかのアプリケーションにおいて作成する必要がないので、ソフトウェアが開発しやすくなるというメリットがある。 DTMにおいてのDLLファイル VSTi?としてファイル化・配布されることがある。 ファイル容量なども様々で、大きいメモリが推奨される。 DTMに関連して、有名なDLL GOGO.DLLMP3エンコーダ?ソフト「午後のこ~だ?」に同梱されているDLLファイル。lameというMP3エンコーダから創られていてWAVEデータ・AIFFデータなどの音声データを、MP3に変換することができる。その機能性から多くのソフトウェアにも引用されている。リンク:午後のこ~だ lame.dllGOGO.DLLの基になったDLLファイル。多くの再生プレーヤー等に利用されているため、現在ではこちらのほうが主流になりつつある。
https://w.atwiki.jp/isoroku_be/pages/164.html
情報 作者名:SWinX 引用元:なでしこ質問掲示板「タスクトレイでポップアップメニュー」 概要 タスクトレイのイベントでポップアップメニューを表示させます。 解説 ひまわりでmokaさんが作成なさった「タスクトレイでメニュー」 http //www.isonly.net/~yuk_yt/himawari/pr/1165.html をなでしこ移植しました。 サンプルプログラム //ここから タスクトレイでメニュー ●母艦設計 母艦の可視はオフ ■POINT ・X ・Y !POINT_TYPEとは文字列="DWORD,DWORD" ●GetCursorPos({参照渡し}p)=DLL("USER32.DLL", "INT GetCursorPos( char* pPoint)") ●GetMenu(hWnd)=DLL("USER32.DLL", "DWORD GetMenu(DWORD hWnd)") ●GetSubMenu(hMenu,I)=DLL("USER32.DLL", "DWORD GetSubMenu( DWORD hWnd, DWORD Index)") ●TrackPopupMenu(hMenu,f,x,y,r,hWnd,p)=DLL("USER32.DLL", "Int TrackPopupMenu( Int hMenu, Int wFlags, Int x, Int y, Int nReserved, Int hWnd, Int lPrc)") 「なし,M親,ダミー M親,M子1,出す,,,母艦復活 M親,M線1,- M親,M子2,終わる,,,終わり」をメニュー一括作成 GetMenu(母艦ハンドル) メニューハンドル=GetSubMenu(それ,0) M親の可視はオフ 母艦をタスクトレイ入れる 母艦のタスクトレイ右クリックした時は~ Sとは文字列 Sに8を確保 GetCursorPos(S) UNPACK(S,POINT,POINT_TYPE) TrackPopupMenu(メニューハンドル,2,POINT.X,POINT.Y,0,母艦ハンドル,0) 待機。 ●母艦復活 母艦をタスクトレイ出す 母艦の可視はオン 動作に不具合が合ったので修正してみました。http //nade.jp-pro.net/bbs/bbs2/cbbs.cgi?mode=al2 namber=1152 rev= no=0 -- 戒斗 (2010-08-17 17 44 03) メニューがクリックしてからでないと消えない不具合の修正です。 -- 戒斗 (2010-08-17 17 48 04) 名前 コメント
https://w.atwiki.jp/isoroku_be/pages/65.html
情報 作者名:うたひこ 引用元:なでしこプログラム掲示板「Z座標グループ化」 勝手に改変 概要 対象ウィンドウのバーの有効/無効を切り替えます。 解説 引数 H:対象ウィンドウのハンドル サンプルプログラム (0),(0)へ「あいうえお」を文字表示。 1秒待つ。 (母艦のハンドル)で窓ハンドルバー無効。 //本体 ●窓ハンドルバー無効(Hで) モード=GetWindowLong(H,$FFFFFFF0) モード=AND(モード,$FF70FFFF) タイトルバー無効化 SetWindowLong(H,$FFFFFFF0,モード) 無効化実行 ●窓ハンドルバー有効(Hで) モード=GetWindowLong(H,$FFFFFFF0) SetWindowLong(H,$FFFFFFF0,モード+$008F0000)’タイトルバー有効に戻す ●SetWindowLong(hWnd,nIndex,dwNewLong)=DLL("user32.dll","BOOL SetWindowLongA(DWORD,int,int)") ●GetWindowLong(hWnd,nIndex)=DLL("user32.dll","DWORD GetWindowLongA(DWORD,int)") 名前 コメント
https://w.atwiki.jp/isoroku_be/pages/171.html
情報 作者名:戒斗 引用元:なでしこプログラム掲示板「タスクトレイでポップアップメニュー改」 概要 タスクトレイのイベントでポップアップメニューを表示させます。 「タスクトレイでポップアップメニュー」 の不具合を勝手に修正してみました。 解説 ひまわりでmokaさんが作成なさった「タスクトレイでメニュー」 http //www.isonly.net/~yuk_yt/himawari/pr/1165.html をSWinXさんがなでしこに移植された 「タスクトレイでポップアップメニュー」 にメニューが他の場所をクリックしても消えないという不具合があったので修正して見ました。 そのためショートカットキーの動作も可能になっています。 サンプルプログラム //ここから タスクトレイでメニュー ●母艦設計 母艦の可視はオフ ■POINT ・X ・Y !POINT_TYPEとは文字列="DWORD,DWORD" ●GetCursorPos({参照渡し}p)=DLL("USER32.DLL", "INT GetCursorPos( char* pPoint)") ●GetMenu(hWnd)=DLL("USER32.DLL", "DWORD GetMenu(DWORD hWnd)") ●GetSubMenu(hMenu,I)=DLL("USER32.DLL", "DWORD GetSubMenu( DWORD hWnd, DWORD Index)") ●TrackPopupMenu(hMenu,f,x,y,r,hWnd,p)=DLL("USER32.DLL", "Int TrackPopupMenu( Int hMenu, Int wFlags, Int x, Int y, Int nReserved, Int hWnd, Int lPrc)") ●SetForegroundWindow(hWnd) =DLL("user32.dll", "BOOL SetForegroundWindow( HWND hWnd )") 「なし,M親,ダミー M親,M子1,出す,,,母艦復活 M親,M線1,- M親,M子2,終わる,,,終わり」をメニュー一括作成 GetMenu(母艦ハンドル) メニューハンドル=GetSubMenu(それ,0) M親の可視はオフ 母艦をタスクトレイ入れる 母艦のタスクトレイ右クリックした時は~ Sとは文字列 Sに8を確保 SetForegroundWindow(母艦ハンドル) GetCursorPos(S) UNPACK(S,POINT,POINT_TYPE) TrackPopupMenu(メニューハンドル,2,POINT.X,POINT.Y,0,母艦ハンドル,0) 待機。 ●母艦復活 母艦をタスクトレイ出す 母艦の可視はオン テスト -- test (2010-09-23 00 30 57) 名前 コメント
https://w.atwiki.jp/dragonokokoko/pages/562.html
540 名前:1 ◆3GcCm7z.d2 投稿日:2008/06/27(金) 02 46 38.11 ID h0NVSUs0 局 なでしこ「あっ!!」 K「お~ひさしぶり。」 なでしこ「なんで電話通じないんですかー。」 K「あーごめん色々あってん。」 OP男「あっ僕戻っときますね」 K「あ ごめん。ありがとーね。」 なでしこ「すいません邪魔でした?」 K「いや用事終ったとこやしええよ。」 なでしこ「あ、そーなんだ。 新しい番号教えてもらっていいですか?」 K「ごめん俺携帯今持ってへん。」 なでしこ「ホントに!?」 K「うん 必要ないし」 なでしこ「必要ないしって不便じゃないんですか?ww」 K「んー別に 友達おらんし。」 なでしこ「うそだぁ 一杯いそうですよぉww」 K「そーでもないんやねぇ~・・。」 なでしこ「お仕事に差し支えとかないんですか。」 K「ないねぇ~。」 541 名前:1 ◆3GcCm7z.d2 投稿日:2008/06/27(金) 02 52 49.10 ID h0NVSUs0 なでしこ「なんかここちょっと作り変わりましたね~。」 K「そうだったっけ・・・。」 なでしこ「そうだったっけって!!ww」 K「なんか前にもまして明るぅなったなあ 大学生の彼氏とは上手くいってんの。」 なでしこ「いつの話してるんですか!!wwww てゆうか言ったし!!」 K「え なに 別れたん。」 なでしこ「もうだいぶ前に別れたし言いましたってぇ~も~」 K「なんかキャラ変わったな・・・ww」 なでしこ「そうですか?」 K「前はもっと明るいけどおしとやかな感じがあったなあ。」 なでしこ「そっちの方がよかったですか・・・ww?」 K「いやどっちでも別にって感じやけどww」 なでしこ「なにそれ!ww」 542 名前:1 ◆3GcCm7z.d2 投稿日:2008/06/27(金) 03 02 38.61 ID h0NVSUs0 K「んで電話かけてくれてたんやろ 用でもあったん。」 なでしこ「いや元気かな~って・・・ww」 K「元気そうに見える?」 なでしこ「見えますけどww 違うんですか?」 K「いやKちゃんはいつでも元気モリモリ勇気リンリンやけれども。」 なでしこ「ですよね~ww」 K「え それだけ?」 なでしこ「え はいww」 K「ふーん ちょまって それだけの為に来たん?ww」 なでしこ「いやいや お父さんに久々に聞いたら行ってもいいよ~って(S)さんに連絡 してくれたから。」 K「あー そうやったな・・・。(まあしょっちゅう行かすとまずいやろしなあ。)」 なでしこ「Kさんは彼女とかできました?ww」 K「あ結婚した。」 なでしこ「えっ!!!???」 K「去年。」 なでしこ「何で言ってくれないんですか!? 式は!?」 K「し・・・・てない。」 なでしこ「何今のwwww えっ 奥さんってもしかしてここの人ですか?」 K「いや 違うよ。 カナダ人。」 なでしこ「カナダ人!?」 543 名前:1 ◆3GcCm7z.d2 投稿日:2008/06/27(金) 03 11 33.28 ID h0NVSUs0 なでしこ「奥さんの写真とかないんですか~?ww」 K「いや 宗教的なもんで写真撮ると魂がどうたらゆう人で。」 なでしこ「っていうかウソでしょww」 K「なにがぁ。」 なでしこ「カナダ人ってww なんでカナダかわかんないけど」 K「ばれたか~ ホンマはここの奴なんよ。」 なでしこ「やっぱりww どうりょうさんでしょww」 K「いや 違う。」 なでしこ「えっ。あたし喋ったことある人ですか?」 K「っていうかそろそろ結婚なんかしてへんって言うたほうがええんかなぁ~・・・。」 なでしこ「・・・・・・・・。」 K「・・・・帰ってくれる?」 なでしこ「えっ何で!?ww」 544 名前:1 ◆3GcCm7z.d2 投稿日:2008/06/27(金) 03 18 12.29 ID h0NVSUs0 ボーカル「Kちゃんモテるじゃん最近ww」 K「どこがよ。」 ボーカル「今日来てた子 あれKちゃんに気ーあるね。」 K「一年くらい会ってなかったけど。」 ボーカル「だから気がある程度。」 K「あー。 ・・・・? まあええわ。 そーいや最初会った時あの子にときめいたことあったなぁ~ww」 ボーカル「ロリコン?」 K「あの子二十歳超えてんで。」 ボーカル「分かるけどww でもKちゃんってロリコンっぽいよね~。」 K「まあギリギリ小2までならいけるな。」 ボーカル「つかまっちゃえばいいよww」
https://w.atwiki.jp/isoroku_be/pages/151.html
情報 作者名:SWinX 引用元:なでしこプログラム掲示板「サンプル-プライベートフォント」 概要 特定のアプリケーションだけで使うフォントをプライベートフォントといいます。 これによって、コンピューターにインストールされていないフォントでも使えるようになります。 一時的にシステムに登録して、使い終わったら解除しておくようです。 解説 http //www.himanavi.net/cgi/nade-1st/cbbs.cgi?mode=all number=4053 type=0 space=0 no=0 http //mrxray.on.coocan.jp/Halbow/Notes/N024.html を参考にしました。 グレイグラフィックス-Natsumikanフォント http //www.orange.ne.jp/%7Eden7/htm/natsu.html を下のサンプルプログラムの動作確認に使用します ダウンロードしてデスクトップに展開しておいてください サンプルプログラム //フォントの情報 フォントファイル=「{デスクトップ}NatsumikanHIR.TTF」 フォント名=「NatsumikanHIR」 //登録 フォントファイルをフォント追加 フォント登録通知 //使ってみる 文字サイズ=72 文字色は$FF8800 文字書体はフォント名 「uznty」と表示 描画処理反映 //登録解除 フォントファイルをフォント削除 フォント登録通知 //本体 !HWND_BROADCAST=$FFFF !WM_FONTCHANGE=$1D システムにフォントを追加します ●フォント追加({参照渡し}Fを)=DLL("gdi32.dll", "DWORD AddFontResourceA(char* lpszFileName);") システムからフォントを削除します ●フォント削除({参照渡し}Fを)=DLL("gdi32.dll", "DWORD RemoveFontResourceA(char* lpFileName);") フォントの変更をすべてのトップウインドウに通知します ●フォント登録通知 SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0) Windows2000以上向けに、完全にプライベートフォントとしてフォントを追加するサンプルを作成しました -- area (2009-03-16 15 37 01) プログラム掲示板、プライベートフォントスレに書き込みましたので、ご自由に使って下さい -- area (2009-03-16 15 37 34) 名前 コメント
https://w.atwiki.jp/1note/pages/114.html
DLL 読み方 : ディーエルエル フルスペル : Dynamic Link Library 分野 : Windows 実行環境 Windowsにおいて、複数のアプリケーションソフトが共通して利用するような汎用性の高いプログラムを部品化してファイルとして保存しておき、必要に応じてメモリに呼び出して利用する手法。また、そのようにして利用されるプログラム部品のこと。DLLとして提供されている機能は開発せずにすむので、アプリケーションソフトの開発効率が高まる。また、同じプログラム部品を複数のアプリケーションソフトで共有するので、ディスクやメモリの容量を節約できる。WindowsはOSとしての機能の多くをDLLとして提供しており、基本的なアプリケーションソフトならば標準のDLLが持つ機能を呼び出すだけで構築できることも多い。
https://w.atwiki.jp/isoroku_be/pages/57.html
情報 作者名:TM 引用元:なでしこプログラム掲示板「メディアプレーヤー」 概要 マウスカーソルを変更します。 解説 引数 ファイル:?(とりあえず0に) 種類:下記参照 32512 (IDC_ARROW) 標準矢印カーソル 32513 (IDC_IBEAM) アイビーム (縦線) カーソル 32514 (IDC_WAIT) 砂時計カーソル 32515 (IDC_CROSS) 十字カーソル 32516 (IDC_UPARROW) 垂直の矢印カーソル 32640 (IDC_SIZE) 現在は使われません 32641 (IDC_ICON) 現在は使われません 32642 (IDC_SIZENWSE) 斜め右下がりの両方向矢印カーソル 32643 (IDC_SIZENESW) 斜め左下がりの両方向矢印カーソル 32644 (IDC_SIZEWE) 左右両方向矢印カーソル 32645 (IDC_SIZENS) 上下両方向矢印カーソル 32646 (IDC_SIZEALL) 4 方向矢印カーソル 32648 (IDC_NO) 禁止カーソル 32649 (IDC_HAND) Windows 98/Me/2000/XP:ハンドカーソル 32650 (IDC_APPSTARTING) 砂時計付き矢印カーソル 32651 (IDC_HELP) クエスチョンマーク付き矢印カーソル サンプルプログラム 母艦のマウス移動した時は~ (0の32649のカーソルアイコン取得)にマウスカーソル設定。 母艦のマウス押した時は~ (0の32649のカーソルアイコン取得)にマウスカーソル設定。 母艦のマウス離した時は~ (0の32649のカーソルアイコン取得)にマウスカーソル設定。 //本体 ●カーソルアイコン取得(ファイルの種類の) = DLL("user32.dll","DWORD LoadCursorA(BOOL,DWORD)") ●マウスカーソル設定(Iに) = DLL("user32.dll","DWORD SetCursor(DWORD)") 自分で作った画像をマウス画像にするにはどうすればいいですか? -- かめ (2009-08-25 20 57 31) ●カーソルファイル取得(CFileを) = DLL("user32.dll","HCURSOR LoadCursorFromFileA(PCSTR pFileName)") -- canot これでいけるはず! (2009-08-30 18 25 54) ●SetWindowClass(h,i,nl) =DLL("user32.dll", "LONG SetClassLongA(HWND hWnd,int nIndex,LONG dwNewLong)") -- canot ちらつかせたくないならウィンドウクラス書き換えで! (2009-08-30 18 30 49) ↑hにウィンドウハンドルを、iに -12 を、 nlにカーソルハンドルを渡せば「移動した時」でいちいち書き換えなくても、ウィンドウのカーソルを永続的に書き換えることができます -- canot (2009-08-30 18 32 38) ●SetWindowClass(h,i,nl) =DLL("user32.dll", "ULONG_PTR SetClassLongPtr(HWND hWnd,int nIndex,LONG_PTR dwNewLong)") -- canot 64bit版はこちらだそうです (2009-08-30 18 41 53) 名前 コメント